#include<bits/stdc++.h>
using namespace std;
typedef double db;
typedef long double ldb;
const int mxn=105;
int n,m,i,j,t,k,s;
db dp[mxn][mxn*10],c,ti;
struct node
{
db dif;int pt;
}a[mxn];
bool cmp(node x,node y){return x.dif<y.dif;}
int main()
{
int T;
scanf("%d",&T);
while (T--)
{
scanf("%d%lf%lf",&n,&c,&ti);
for (i=1;i<=n;++i) scanf("%lf%d",&a[i].dif,&a[i].pt);
sort(a+1,a+n+1,cmp);
for (j=0;j<=n;++j)
for (i=0;i<=n*10;++i) dp[j][i]=1e18;
s=0;dp[0][0]=0.0;
for (i=1;i<=n;++i)
{
for (k=i-1;k>=0;--k)
for (j=s;j>=0;--j)
dp[k+1][j+a[i].pt]=min(dp[k+1][j+a[i].pt],dp[k][j]*10.0/9.0+a[i].dif*10.0/9.0);
s+=a[i].pt;
}
int ans=0;
for (i=0;i<=n;++i)
for (j=0;j<=s;++j)
{
db tmp;
if (dp[i][j]>=1.0/c) tmp=2.0*sqrt(dp[i][j]/c)-1.0/c;
else tmp=dp[i][j];
if (tmp+i*10.0<=ti) ans=max(ans,j);
}
printf("%d\n",ans);
}
return 0;
}
39F - Pacifist frogs | 1451C - String Equality |
386A - Second-Price Auction | 1690E - Price Maximization |
282B - Painting Eggs | 440A - Forgotten Episode |
233B - Non-square Equation | 628B - New Skateboard |
262B - Roma and Changing Signs | 755C - PolandBall and Forest |
456B - Fedya and Maths | 376B - IOU |
1623B - Game on Ranges | 1118A - Water Buying |
1462C - Unique Number | 301A - Yaroslav and Sequence |
38A - Army | 38C - Blinds |
1197A - DIY Wooden Ladder | 1717D - Madoka and The Corruption Scheme |
1296D - Fight with Monsters | 729D - Sea Battle |
788A - Functions again | 1245B - Restricted RPS |
1490D - Permutation Transformation | 1087B - Div Times Mod |
1213B - Bad Prices | 1726B - Mainak and Interesting Sequence |
1726D - Edge Split | 1726C - Jatayu's Balanced Bracket Sequence |